Умные очки с детектором мигания

Очки, которые фотографируют поле зрения по сигналу с детектора мигания и передают изображение в облако для дальнейшей обработки

Общее описание системы

Система состоит из набора пользовательских устройств в виде очков со встроенной камерой и датчиком, распознающим моргание. Пользовательские устройства подключаются к сети через Wi-Fi (напрямую) или Bluetooth (с промежуточным мобильным устройством)

При срабатывании датчика (однократное моргание или заданное движение глаз) фиксируется поле зрения пользователя и на центральный сервер отправляется отметка времени с геотегом. В этом случае фотография сохраняется в памяти устройства, где хранится определенное количество недавних фотографий с соответствующими временными метками и геотегами. Набор собранных пользовательских устройств Серверная часть обрабатывает данные с пользовательских устройств и определяет интересующий фильтр. Самый простой фильтр — это фотографии пользователей, которые находятся в определенном месте и моргают в одно и то же время. Параметры фильтрации могут быть настроены на стороне сервера или самими пользователями сервиса. После получения команды от сервера устройство отправляет фотографию с запрошенной меткой времени

Фото обрабатывается на сервере вместе с фотографиями других пользовательских устройств и сохраняется в облаке. Результат может отображаться в веб-версии или мобильном приложении, в котором пользователь может настроить принцип фильтрации, посмотреть собственные оценки, самые популярные и т. д.

Принцип взаимодействия сервисов

Описание пользовательского устройства

Набор собранных пользовательских устройств

Состоит из оправы в виде очков (без диоптрий), на которую крепятся остальные компоненты. Спереди установлена камера, которая фиксирует поле зрения пользователя. Напротив одного из глаз расположен аналоговый ИК-датчик, направленный на белок глаза. Датчик подключен к вспомогательному контроллеру (на базе Atmega 328P). Сигнал о наступлении этого события передается на главный контроллер (Raspberri Pi Zero). Питание обеспечивается аккумулятором 18650, который можно заряжать с помощью контроллера заряда TP4056 через порт microUSB.

Логика пользовательского устройства

Моргание обнаруживается аналоговым ИК-датчиком TCRT5000, направленным на белок глаза. Датчик подключается к аналоговому входу вспомогательного контроллера. Открытый и закрытый глаз дает разные показатели, что позволяет после обработки сигнала встроенным алгоритмом с достаточно высокой точностью определить момент моргания. Логический сигнал передается на основной контроллер через подтягивающие резисторы.< /п>

Основной контроллер (Raspberri Pi Zero) подключается к сети Wi-Fi, которая обеспечивает подключение к Интернету. При поступлении команды перепрошивки с камеры снимается изображение, сохраняется на карту памяти и отправляется пакет на IP-сервер вместе с идентификатором устройства. Вспомогательный контроллер работает на прошивке, написанной на C++, основной контроллер — Python. скрипт + основная система основана на ядре Linux

Схема подключения пользовательского устройства

Схема подключения очков

"Главное" устройство для тестирования

"Главное" устройство

В целях тестирования также разработано тестовое «мастер-устройство», которое эмулирует некоторые функции сервера (в частности, запрос фотографий) и отображает их на встроенном экране. Тестовое главное устройство не требует подключения к сети — по умолчанию оно работает со всеми устройствами в одной локальной сети. Состоит из контроллера Raspberri Pi Zero с подключенным сенсорным экраном и источником питания.

Логика ведущего устройства (для тестов)

Главное устройство имитирует функции веб-сервера. При включении нескольких пользовательских устройств в одной локальной сети (подключенных к одному Wi-Fi роутеру) каждое из них открывает сетевое соединение с главным устройством. Главное устройство записывает пакеты с отметками времени от каждого устройства. Если пакеты соответствуют заданному критерию (например, разница момента мигания на нескольких устройствах меньше заданного диапазона), на соответствующие устройства отправляется запрос на отправку фотографии. Пользовательское устройство преобразует фотографию в набор данных и отправляет на сервер. Сервер сохраняет изображение в памяти и отображает его на экране.

Основные системные параметры для пользовательского устройства

  • Основной контроллер — Raspberry Pi Zero W
  • Главный процессор – 1 ГГх, ARM1176JZ-F
  • Графический процессор — VideoCore IV 48+
  • Чипсет — Broadcom BCM2835.
  • ОЗУ – 512 МБ DDR2
  • Память – 8 ГБ (microSD)
  • Связь — Wi-Fi 802.11 b/g/n, Bluetooth 4.1.
  • Разъемы — MicroUSB, miniHDMI.
  • Вторичный контроллер — Arduino Nano
  • Вторичный процессор – 16 МГц, ATmega328P
  • Вторичная память контроллера — 2 КБ SRAM, 1 КБ EEPROM.
  • Камера – Sony IMX219
  • Разрешение камеры – 8 Мп (3280 х 2464)
  • Поддерживаемые форматы видео – 1080р @ 30 кадров в секунду, 720p @ 60 кадров в секунду и 640 х 480p @ 90 кадров в секунду.
  • Размер матрицы – ¼ дюйма.
  • Размер пикселя – 1,4 мкм х 1,4 мкм.
  • Датчик мигания – TCRT5000
  • Тип детектора – фототранзистор
  • Пиковое рабочее расстояние – 2,5 мм.
  • Длина волны излучателя – 950 мкм.
  • Тип аккумулятора – Li-Ion 18650 (Panasonic NCR18650)
  • Емкость аккумулятора – 3400 мАч (3,7 В).
  • Вес – 65 г (основные компоненты), 110 г (включая очки, крепление компонентов и провода).

Основной системный параметр для «Главного» устройства

  • Основной контроллер — Raspberry Pi Zero W
  • Главный процессор – 1 ГГх, ARM1176JZ-F
  • Графический процессор — VideoCore IV 48+
  • Чипсет — Broadcom BCM2835.
  • ОЗУ – 512 МБ DDR2
  • Память – 8 ГБ (microSD)
  • Связь — Wi-Fi 802.11 b/g/n, Bluetooth 4.1.
  • Разъемы – microUSB, miniHDMI.
  • Размер экрана – 2,8 дюйма.
  • Разрешение экрана – 320x240 пикселей.

Компоненты

  • Raspberry Pi Zero W
  • Камера Paspberry Pi
  • SD-карта (минимум 8 ГБ)
  • Ардуино Нано
  • ИК-датчик TCRT5000
  • Контроллер заряда TP4056
  • GPS-модуль UbloX NEO-6M-0-001
  • Литий-ионный аккумулятор Panasonic NCR18650
  • Очки (любого типа)

Дальнейшее развитие системы

  • Добавление дополнительных данных для отправки вместе с фотографией (геотег, положение очков и т. д.)

  • Разные команды для разных комбинаций вспышек (двойных, тройных и т. д.)

  • Добавление второго датчика и использование различных комбинаций двух морганий.

  • Снимаем короткое видео вместо фото.

  • Расширенный функционал главного устройства (интерфейс отображения подключенных устройств, фотогалерея и т. д.)

  • Веб-сервер для работы в глобальной сети

  • Веб-приложение для получения данных с веб-сервера (отображение собственных фотографий, галереи фотографий других очков с использованием различных фильтров и т.д.)

  • Мобильное приложение для доступа к данным с веб-сервера

  • Формирование бизнес-логики сервиса  

Фотографии

Пользовательское устройство Пользовательское устройство Пользовательское устройство Набор собранного пользователя устройстваОсновные компоненты пользовательского устройства перед сборкой Основные контроллеры пользовательского устройства Программирование пользовательского устройства Набор собранных пользовательских устройств Набор собранных пользовательских устройств Набор собранных пользовательских устройств